<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>rightcfg</title>
<style type="text/css">

table {border-collapse:collapse;}
thead th {
font:bold 13px/18px georgia;
text-align:left;
background:#D1DDEF;
color:#333;
padding:8px 16px 8px 8px;
border-right:1px solid #fff;
border-bottom:1px solid #fff;
}
thead th.null {background:#3CF}
tbody th {
font:bold 12px/15px georgia;
text-align:left;
background:#D1DDEF;
color:#333;
padding:8px;
border-bottom:1px solid #f3f0e4;
border-right:1px solid #fff;
}
tbody td {
font:normal 12px/15px georgia;
color:#333;
padding:8px;
border-right:1px solid #f3f0e4;
border-bottom:1px solid #f3f0e4;
}
/* 这3个是关键   --cssrain.cn */
tbody td.on {background:#69c;}   
thead th.on {background:#69c;}
tbody th.on {background:#69c;}
</style>


<script type="text/javascript">
/*
For functions getElementsByClassName, addClassName, and removeClassName
Copyright Robert Nyman, <a href="http://www.robertnyman.com" target="_blank">http://www.robertnyman.com</a>
Free to use if this text is included
*/
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
    window.onload = func;
} else {
    window.onload = function() {
      oldonload();
      func();
    }
}
}

function getElementsByClassName(className, tag, elm){
var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
var tag = tag || "*";
var elm = elm || document;
var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
var returnElements = [];
var current;
var length = elements.length;
for(var i=0; i<length; i++){
   current = elements[i];
   if(testClass.test(current.className)){
    returnElements.push(current);
   }
}
return returnElements;
}

function addClassName(elm, className){
    var currentClass = elm.className;
    if(!new RegExp(("(^|\\s)" + className + "(\\s|$)"), "i").test(currentClass)){
        elm.className = currentClass + ((currentClass.length > 0)? " " : "") + className;
    }
    return elm.className;
}

function removeClassName(elm, className){
    var classToRemove = new RegExp(("(^|\\s)" + className + "(\\s|$)"), "i");
    elm.className = elm.className.replace(classToRemove, "").replace(/^\s+|\s+$/g, "");
    return elm.className;
}

function makeTheTableHeadsHighlight() {
// get all the td's in the heart of the table...
var table = document.getElementById('rockartists');
var tbody = table.getElementsByTagName('tbody');
var tbodytds = table.getElementsByTagName('td');

// and loop through them...
for (var i=0; i<tbodytds.length; i++) {

// take note of their default class name
   tbodytds[i].oldClassName = tbodytds[i].className;
  
// when someone moves their mouse over one of those cells...
   tbodytds[i].onmouseover = function() {

// attach 'on' to the pointed cell
    addClassName(this,'on');
   
// attach 'on' to the th in the thead with the same class name
    var topheading = getElementsByClassName(this.oldClassName,'th',table);
    addClassName(topheading[0],'on');
   
// attach 'on' to the far left th in the same row as this cell
    var row = this.parentNode;
    var rowheading = row.getElementsByTagName('th')[0];
    addClassName(rowheading,'on');
   }

// ok, now when someone moves their mouse away, undo everything we just did.

   tbodytds[i].onmouseout = function() {

// remove 'on' from this cell
    removeClassName(this,'on');
   
// remove 'on' from the th in the thead
    var topheading = getElementsByClassName(this.oldClassName,'th',table);
    removeClassName(topheading[0],'on');

// remove 'on' to the far left th in the same row as this cell
    var row = this.parentNode;
    var rowheading = row.getElementsByTagName('th')[0];
    removeClassName(rowheading,'on');
   }
}
}
addLoadEvent(makeTheTableHeadsHighlight);
</script>
</head>
<body>



<table id="rockartists">
<thead>
   <tr>
    <th class="null">权限细分</th>
    <th class="stones">模块描述</th>
    <th class="u2">常规权限</th>
    <th class="crue">其它权限</th>
   </tr>
</thead>
<tbody>
   <tr>
    <th>模块一</th>
    <td class="stones">详细描述</td>
    <td class="u2"><input type="checkbox" />读取 <input type="checkbox" />写入 <input type="checkbox" />修改 <input type="checkbox" />删除</td>
    <td class="crue"><input type="checkbox" />审批 <input type="checkbox" />排它<input type="checkbox" />跨组 <input type="checkbox" />删除</td>
   </tr>
    <th>模块一</th>
    <td class="stones">详细描述</td>
    <td class="u2"><input type="checkbox" />读取 <input type="checkbox" />写入 <input type="checkbox" />修改 <input type="checkbox" />删除</td>
    <td class="crue"><input type="checkbox" />审批 <input type="checkbox" />排它<input type="checkbox" />跨组 <input type="checkbox" />删除</td>
   </tr>    <th>模块一</th>
    <td class="stones">详细描述</td>
    <td class="u2"><input type="checkbox" />读取 <input type="checkbox" />写入 <input type="checkbox" />修改 <input type="checkbox" />删除</td>
    <td class="crue"><input type="checkbox" />审批 <input type="checkbox" />排它<input type="checkbox" />跨组 <input type="checkbox" />删除</td>
   </tr>    <th>模块一</th>
    <td class="stones">详细描述</td>
    <td class="u2"><input type="checkbox" />读取 <input type="checkbox" />写入 <input type="checkbox" />修改 <input type="checkbox" />删除</td>
    <td class="crue"><input type="checkbox" />审批 <input type="checkbox" />排它<input type="checkbox" />跨组 <input type="checkbox" />删除</td>
   </tr>    <th>模块一</th>
    <td class="stones">详细描述</td>
    <td class="u2"><input type="checkbox" />读取 <input type="checkbox" />写入 <input type="checkbox" />修改 <input type="checkbox" />删除</td>
    <td class="crue"><input type="checkbox" />审批 <input type="checkbox" />排它<input type="checkbox" />跨组 <input type="checkbox" />删除</td>
   </tr>    <th>模块一</th>
    <td class="stones">详细描述</td>
    <td class="u2"><input type="checkbox" />读取 <input type="checkbox" />写入 <input type="checkbox" />修改 <input type="checkbox" />删除</td>
    <td class="crue"><input type="checkbox" />审批 <input type="checkbox" />排它<input type="checkbox" />跨组 <input type="checkbox" />删除</td>
   </tr>    <th>模块一</th>
    <td class="stones">详细描述</td>
    <td class="u2"><input type="checkbox" />读取 <input type="checkbox" />写入 <input type="checkbox" />修改 <input type="checkbox" />删除</td>
    <td class="crue"><input type="checkbox" />审批 <input type="checkbox" />排它<input type="checkbox" />跨组 <input type="checkbox" />删除</td>
   </tr>    <th>模块一</th>
    <td class="stones">详细描述</td>
    <td class="u2"><input type="checkbox" />读取 <input type="checkbox" />写入 <input type="checkbox" />修改 <input type="checkbox" />删除</td>
    <td class="crue"><input type="checkbox" />审批 <input type="checkbox" />排它<input type="checkbox" />跨组 <input type="checkbox" />删除</td>
   </tr></tbody>
</table>

</body>

</html>

